// 每个模块开发都需要遵循 CommonJS 规范
// CommonJS 规范只是针对开发 Node 应用而提出的，它是由社区
// 导入 node 核心模块，因为是 Node 原生提供的核心模块，所以不用指定路径，只需要指定核心模块名称
const crypto = require('crypto');

module.exports = {
    /**
     * 密码加密函数
     */
    passwordEncrypte(password) {
        return (
            crypto
                // sha256 表示加密函数，dsdwjdiqw 是一个随便写的字符串，表示一个加密的钥匙
                .createHmac('sha256', '12321321')
                .update(password)
                .digest('hex')
        );
    },
    /**
     * 日期格式化函数
     */
    formatDate(date) {
        // instanceof 用于判断一个变量是不是某个构造函数创建出来的实例
        // js 判断变量类型：typeof Object.prototype.toString.call()
        if (date instanceof Date) {
            const Y = date.getFullYear();
            // padStart、padEnds 是 ES6 新增的字符串方法
            const M = String(date.getMonth() + 1).padStart(2, '0');
            const D = String(date.getDate()).padStart(2, '0');
            const hh = String(date.getHours()).padStart(2, '0');
            const mm = String(date.getMinutes()).padStart(2, '0');
            const ss = String(date.getSeconds()).padStart(2, '0');
            return `${Y}-${M}-${D} ${hh}:${mm}:${ss}`;
        }

        if (typeof date === 'string') {
            // ....
            return ``;
        }

        throw new Error('请传入一个 Date 对象');
    },
};
